package com.mashibing.juc.c_022_RefTypeAndThreadLocal;

import java.lang.ref.SoftReference;

/**
 * 软引用
 * 内存不够用的时候才会回收
 * 软引用比较适合用做缓存
 * @author: Yuanzt
 * @Date: 2021/3/31
 */
public class T02_SoftReference {

    public static void main(String[] args) {
        SoftReference<byte[]> m = new SoftReference<>(new byte[1024*1024*10]);
        System.out.println(m.get());//m.get()拿到字节数组
        System.gc();//即使调用了gc，但是内存够用，所以不会被回收
        try {
            Thread.sleep(500);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        System.out.println(m.get());
        byte[] b = new byte[1024*1024*15];
        System.out.println(m.get());
    }
}
